package com.gdip.mapper;


import com.gdip.po.UserPo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;


public interface UserMapper {
    // 增加
    int insertUser(@Param("user") UserPo user);

    UserPo findByUsername(@Param("username") String username);

    // 管理员操作-按账号模糊查询批量用户
    List<UserPo> getUserByUsernameLike(@Param("username") String username);

    // 更新
    int updateUser(UserPo userPo);

    // 根据id查询
    UserPo findById(@Param("id") Integer id);

    // 管理员操作-更新用户权限
    int updateUserPermissions(@Param("id") int id, @Param("permissions") Integer permissions);

    List<UserPo> findAll();

    // 根据用户名（模糊）和权限（精确）查询
    @Select("SELECT * FROM users WHERE username LIKE CONCAT('%', #{username}, '%') AND permissions = #{permissions}")
    List<UserPo> findByUsernameAndPermissions(@Param("username") String username, @Param("permissions") Integer permissions);


}